package org.lanqiao.tjut.bzhDemo;

import org.junit.Test;

public class TestDriver {
	/*
	 * Object对象：
	 * 所有的类都继承自Object类。
	 * 实例对象的getClass方法获取的是Class类的实例对象，
	 * Class是对类的描述的类。Class类封装了所有的与类相关的信息和行为动作。
	 * （Class类是进行反射时使用的基础类）
	 * 可以使用  实例是对象的 getClass()判定这两个实例变量是否是同一个类的实例变量
	 * 等价于  instanceof 判定 ，例如：
	 * obj instanceof Student 桑旭 你这个傻逼
	 * stu0.getClass() == stu1.getClass()
	 * 
	 * equals方法的重写：
	 * 所有的对象类型都可以通过重写equals方法，实现相等判定的行为。
	 * 
	 */
	@Test
	public void testGetClass() {
		// 创建student的实例对象
		Student stu0 = new Student();
		//类完成的带包路径的类名
		System.out.println("class Name:" + stu0.getClass().getName());
		
		System.out.println("class CanonicalName:" + stu0.getClass().getCanonicalName());

		System.out.println("class SimpleName:" + stu0.getClass().getSimpleName());
		
		System.out.println("class Package Name:" + stu0.getClass().getPackage().getName());
				
	}
	
	@Test
	public void testEqualsOverride(){
		//创建两个student的实例对象  如何判定这两个实例对象的内容相等
		Student stu0 = new Student("夏明", 20);
		Student stu1 = new  Student("夏明2", 20);
		//这两个实例变量内容相等么
		if(stu0.equals(stu1)){
			//内容相等
			System.out.println("内容相等");
		}else{
			System.out.println("内容不等");
		}
	}
	@Test
	public void testObjectToString(){
		//创建一个学生类实例对象
		Student stu0 = new Student("小李", 22);
		System.out.println("stu0 内容为："+stu0.toString());
	}
}
